package pers.chao.cacheable.core.annotation;

import pers.chao.cacheable.core.consts.RedisStructEnum;
import pers.chao.cacheable.core.consts.EvictEqType;

import java.lang.annotation.*;

@Target({ElementType.METHOD})
@Retention(RetentionPolicy.RUNTIME)
@Documented
@RedisStruct(RedisStructEnum.ZSET)
public @interface CacheZSet {
	// 获取时score根据何种顺序排序: true-顺序 false-逆序
	boolean asc() default true;
	// 获取时是否携带score
	boolean withScore() default true;
	// 是否整体替换(清除所有旧元素，缓存新元素)
	boolean replaceAll() default false;
	// 批量删除
	String evictElement() default "";
	// 清除等值元素类型
	EvictEqType eqValueType() default EvictEqType.STRING;
}
